package com.xyz.service;

import com.xyz.controller.vo.InStockVO;
import com.xyz.entity.pojo.PartInnStock;
import com.xyz.request.PartInnOrderRequest;
import com.xyz.request.PartInnStockRequest;
import com.xyz.util.dto.DataResult;
import com.xyz.util.dto.LoginInfo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

public interface PartInnStockService {


    DataResult createInStock(LoginInfo li, List<InStockVO> inStockVOList);

    /**
     * 查询内库列表
     *
     * @param li
     * @param param
     * @return
     */
    DataResult selectList(LoginInfo li, PartInnStockRequest param);

    /**
     * 查询内库出库记录
     *
     * @param li
     * @param param
     * @return
     */
    DataResult selectStockOutRecordList(LoginInfo li, PartInnOrderRequest param);

    /**
     * 查询内库出库记录详情
     *
     * @param li
     * @param id
     * @return
     */
    DataResult selectStockOutRecordInfo(LoginInfo li, Long id);


    Map<Long, PartInnStock> getPartInnStockByPartIdList(List<Long> partIdList);

    /**
     * 内库出入库导出
     * @param response
     * @return
     */
    void export(PartInnStockRequest param, HttpServletResponse response);

    /**
     * 内库导入
     * @param li
     * @param file
     * @return
     */
    DataResult importExcel(LoginInfo li,  MultipartFile file);

    /**
     * 内库出入库记录导出
     * @param param
     * @return
     */
    void innStockExport(PartInnOrderRequest param, HttpServletResponse response);
}
